Control system for automated singulation system

ABSTRACT

A control system for an automated singulation system is provided. The control system detects a presence of a first item on a first conveyor and detects a presence of a second item on a second conveyor while the first item is present on the first conveyor. The second conveyor transfers items onto the first conveyor and is at a lower height than the second conveyor. The first conveyor is oriented perpendicularly with respect to the second conveyor. In response to detecting the presence of the second item, a location of the first item along a length of the first conveyor is determined. The first conveyor and the second conveyor are controlled based at least on the location of the first item.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a divisional of co-pending U.S. patent applicationSer. No. 16/219,655, filed Dec. 13, 2018. The aforementioned relatedpatent application is herein incorporated by reference in its entirety.

BACKGROUND

The present disclosure generally relates to singulating items, and morespecifically, to an automated system that uses multiple conveyor beltsfor singulating items.

Many companies store, package, and ship items and/or groups of itemsfrom different types of facilities (e.g., warehouse, plant, distributioncenter, storehouse, factory, etc.). These various activities and theoverall flow or movement of items within the facility (e.g., fromreceiving the item(s) to storing the item(s), from storing the item(s)to shipping the item(s), etc.) is often labor intensive. The process ofsingulating generally involves separating (or isolating) an item from alarger group of items (e.g., in a container, on a conveyor belt, etc.)for downstream processing.

BRIEF DESCRIPTION OF DRAWINGS

Various embodiments in accordance with the present disclosure will bedescribed with reference to the drawings, where like designations denotelike elements.

FIG. 1A is a block diagram illustrating an example automated singulationsystem, according to one embodiment.

FIG. 1B is a block diagram further illustrating components of theautomated singulated system described relative to FIG. 1A, according toone embodiment.

FIG. 2A illustrates a front perspective view of an example spiralconfiguration for a singulation tool, according to one embodiment.

FIG. 2B illustrates a top view of an example spiral configuration for asingulation tool, according to one embodiment.

FIG. 2C illustrates a side view of an example spiral configuration for asingulation tool, according to one embodiment.

FIG. 3 illustrates a top view of an example S-shaped configuration for asingulation tool, according to one embodiment.

FIG. 4 illustrates a top view of an example whirlpool configuration fora singulation tool, according to one embodiment.

FIG. 5A illustrates a perspective view of an example singulation module,according to one embodiment.

FIG. 5B illustrates a side view of an example singulation module,according to one embodiment.

FIG. 5C illustrates another side view of an example singulation module,according to one embodiment.

FIG. 5D illustrates a front view of an example singulation module,according to one embodiment.

FIG. 5E illustrates a bottom view of an example singulation module,according to one embodiment.

FIG. 6A illustrates a top view of an example frame structure for asingulation tool, according to one embodiment.

FIG. 6B illustrates a perspective view of an example frame structure fora singulation tool, according to one embodiment.

FIG. 7 illustrates a perspective view of another example frame structurefor a singulation tool, according to one embodiment.

FIG. 7A further illustrates a portion of the example frame structureillustrated in FIG. 7, according to one embodiment.

FIG. 7B further illustrates another portion of the example framestructure illustrated in FIG. 7, according to one embodiment.

FIG. 8A illustrates a perspective view of an example singulation tool,according to one embodiment.

FIG. 8B illustrates a top view of an example singulation tool, accordingto one embodiment.

FIG. 8C illustrates a side view of an example singulation tool,according to one embodiment.

FIG. 8C1 further illustrates a portion of the example singulation toolillustrated in FIG. 8C, according to one embodiment.

FIG. 8D illustrates another side view of an example singulation tool,according to one embodiment.

FIG. 8D1 further illustrates a portion of the example singulation toolillustrated in FIG. 8D, according to one embodiment.

FIG. 9A illustrates a perspective view of an example divert tool,according to one embodiment.

FIG. 9A1 further illustrates a portion of the example divert toolillustrated in FIG. 9A, according to one embodiment.

FIG. 9B illustrates a top view of an example divert tool, according toone embodiment.

FIG. 9C illustrates a front view of an example divert tool, according toone embodiment.

FIG. 10 illustrates a perspective view of an example conveyor belt of adivert tool, according to one embodiment.

FIG. 11 illustrates a side view of an example divert tool, according toone embodiment.

FIG. 12 illustrates an example scenario of item detection using multiplesensors on a singulation module, according to one embodiment.

FIGS. 13A-C illustrate an example scenario of controlling singulationmodules in a linear configuration, according to one embodiment.

FIGS. 14A-C illustrate another example scenario of controllingsingulation modules in a linear configuration, according to oneembodiment.

FIGS. 15A-B illustrate an example scenario of controlling singulationmodules to prevent a jamming condition, according to one embodiment.

FIGS. 16A-C illustrate an example scenario of controlling singulationmodules in a perpendicular configuration, according to one embodiment.

FIGS. 17A-B illustrate another example scenario of controllingsingulation modules in a perpendicular configuration, according to oneembodiment.

FIGS. 18A-B illustrate an example scenario of item detection whentransitioning between singulation modules, according to one embodiment.

FIG. 19 is a flowchart illustrating a method for singulating items usingmultiple singulation modules, according to one embodiment.

FIG. 20 is a flowchart illustrating a method for controlling singulationmodules in a linear configuration, according to one embodiment.

FIG. 21 is a flowchart illustrating a method for controlling singulationmodules in a perpendicular configuration, according to one embodiment.

FIG. 22 is a flowchart illustrating a method for configuring singulationmodules, according to one embodiment.

FIG. 23 is a flowchart illustrating a method for controlling singulationmodules to prevent jamming conditions, according to one embodiment.

FIG. 24 is a flowchart illustrating a method for recirculatingnon-singulated items through a singulation tool, according to oneembodiment.

DETAILED DESCRIPTION

Embodiments herein describe an automated system for singulating items,e.g., for shipping, sorting, etc. The system includes a singulation tool(or machine) that singulates items to a specified gap distance (e.g., toachieve a certain processing rate of units per hour (UPH)), a scan toolthat scans and processes items output from the singulation tool, and akickback (or divert) tool that is configured to divert (or re-direct)non-singulated items (output from the singulation tool) back to thesingulation tool via a recirculation line of conveyor belts. Thesingulation tool is a multi-tier conveyor belt system with multipleidentical conveyor belts arranged at different orientations and heights.Each of the conveyor belts is equipped with multiple sensors to detect(e.g., presence and position of) item(s) on the conveyor belt. Items maytransition onto an initial upstream conveyor belt and subsequently movethrough several (intermediary) downstream conveyor belts until reachinga last downstream conveyor belt of the singulation tool. As items aretransitioned into the singulation tool, some of the items may betouching, partially overlapping, and/or laying on one another. Asdescribed further below, each of the conveyor belts in the singulationtool is independently controlled such that the items are singulated(e.g., separated in distance with respect to one another such that theitems are no longer touching, overlapping, and/or laying on one another)as they move from the initial upstream conveyor belt to the lastdownstream conveyor belt in the singulation tool.

After exiting the singulation tool, items are transitioned through thescan tool. The scan tool captures identifying information (e.g., radiofrequency identification (RFID) tag, barcodes, such as universal productcode (UPC), stock keeping unit (SKU), etc.) associated with each itemand verifies the item based on the information. In one embodiment, thescan tool can determine whether an item output from the singulation toolis properly singulated (e.g., separated by a determined gap distancefrom another item) based on the verification. After passing through thescan tool, items are transitioned through the divert tool, which isconfigured to divert items that are not singulated to a recirculationline. For example, items that the scan tool is unable to read and/orthat fail verification are recirculated back to the singulation tool toundergo singulation again.

FIG. 1A illustrates an example automated singulation system 100,according to one embodiment. As shown, the automated singulation system100 includes a master control system 102 and an equipment (or machine)area 110. The automated singulation system 100 may be included in anysuitable phase(s) of facility operations known to a person of ordinaryskill in the art. In one example, the automated singulation system 100may be used at a receiving station to singulate disparate items as theyare initially received into the facility. In another example, theautomated singulation system 100 may be used at a sorting station tosingulate picked items so they can be routed to different packagingstations (e.g., for order fulfillment). Other examples of suitablefacility operations may include staging at loading zones or otherpredefined regions within a facility, loading onto and/or off vehicles,and so forth.

In this particular embodiment, the equipment area 110 includes a loadingarea 112, singulation tool 114, scan tool 116, divert tool 118, andjunction segments 120, 122, 124, 126, 128, and 132. The junctionsegments 120, 122, 124, 126, 128, and 132 generally represent sectionsof the automated singulation system 100 in which items are moved (ortransitioned) within the equipment area 110. The junction segments 120,122, 124, 126, 128, and 132 can have a variety of differentconfigurations (e.g., shape, material, angle, height (or elevation),etc.) suitable for a given equipment area 110 within a facility. Forexample, one or more of the junction segments 120, 122, 124, 126, 128,and 132 can be oriented horizontally, tilted (e.g., with aninclination), etc. In some examples, one or more of the junctionsegments 120, 122, 124, 126, 128, and 132 may be at a different height(or elevation) than another one or more of the junction segments 120,122, 124, 126, 128, and 132. In some examples, one or more of thejunction segments 120, 122, 124, 126, 128, and 132 can have a surfaceshape that is substantially planar, crowned, domed, concave, convex,irregular, or any other shape or combination of shapes. Additionally,the material(s) that forms the top surface of the junction segments 120,122, 124, 126, 128, and 132 may be formed of one or more of a variety ofmaterials (e.g., metal, plastic, rubber, fabric, carpet, wood, tile,etc.). In one embodiment, one or more of the junction segments 120, 122,124, 126, 128, and 132 includes a conveyor belt or a series of conveyorbelts (that may have different configurations).

The loading area 112 generally represents an area in whichnon-singulated items are received by the automated singulation system100. In one embodiment, the non-singulated items may be received throughloaded totes (or containers) (e.g., totes filled with multiplenon-singulated items). For example, the loading area 112 may receive apallet or cart with multiple totes, each including multiple items. Insome examples, the totes may include items that were picked from aninventory area and that correspond to various shipment sets.

The totes may be of various sizes and shapes. In one embodiment, thenon-singulated items may be received at the loading area 112 asindividual items. The loading area 112 may receive loaded totes and/orindividual items using mechanical movement (e.g., using conveyor belts),motorized movement (e.g., using forklifts or carts), robotic movement,manual placement, and so forth.

The loading area 112 may be any space or configuration suitable foroperation(s) in a given facility. That is, the loading area 112 can havea variety of shapes, sizes, surface materials, and/or other properties.In one particular embodiment, at least a portion of the loading area 112may be at a different height (or elevation) than the entrance to thesingulation tool 114. For example, the loading area 112 can include anincline (cleated) conveyor belt that transitions items from the groundfloor of a facility to the singulation tool 114. In another example, theloading area 112 can include a series of conveyor belts at the elevatedheight of the singulation tool 114 that transition items to thesingulation tool 114 from another location within the facility.

From the loading area 112, loaded totes and/or individual itemstransition to the singulation tool 114 via junction segment 132. Thesingulation tool 114 includes multiple singulation modules 130 (alsoreferred to as conveyor belts) deployed in multiple tiers (or levels orhierarchies). As described further below, each singulation module 130 isa conveyor belt equipped with multiple sensors for detecting items onthe conveyor belt. In one embodiment, each singulation module 130 withinthe singulation tool 114 has an identical physical structure (e.g.,size, shape, material), but a different orientation and/or placementwithin the singulation tool 114. The singulation tool 114 may havevarious configurations (or shapes), e.g., depending on how thesingulation modules 130 are deployed. In one embodiment, the singulationmodules 130 may be mounted in a spiral configuration. For example, FIGS.2A, 2B, and 2C show a front perspective view, a top view, and a sideview, respectively, of singulation modules 130 A-N mounted in a spiralconfiguration. In another embodiment, the singulation modules 130 may bemounted in an S-shaped (or “snake”) configuration, e.g., as shown in the(top view) of a singulation tool 114 in FIG. 3. In yet anotherembodiment, the singulation modules 130 may be mounted in a whirlpoolconfiguration, e.g., as shown in the (top view) of a singulation tool114 in FIG. 4. In general, the singulation modules 130 can be mounted inany configuration suitable for the equipment area 110 of a facility.

Within a given configuration of the singulation tool 114, eachsingulation module 130 is placed at a different height with respect toanother singulation module 130, such that the singulation tool 114includes a series (or sequence) of singulation modules 130 waterfallingfrom one to the next. That is, each singulation module 130 is anupstream singulation module and/or a downstream singulation module 130with respect to another singulation module 130. As shown in FIG. 2C, forexample, singulation module 130A is an upstream singulation module withrespect to singulation module 130B, singulation module 130B is adownstream singulation module with respect to singulation module 130Aand an upstream singulation module with respect to singulation module130C, and so on. In some embodiments, one or more of the singulationmodules 130 can be oriented horizontally, titled (e.g., with aninclination), etc. By deploying singulation modules 130 in the variousconfigurations described herein, embodiments can reduce the areafootprint of the automated singulation system 100 within the facilityand improve accessibility to the automated singulation system 100 (e.g.,for maintenance, repairs, troubleshooting, etc.).

As shown in FIG. 1B, the control system 102 is connected to thesingulation tool 114, the scan tool 116, the divert tool 118, and thecloud computing service 160 via network 190. Network 190, in general, isrepresentative of a local area network (LAN) (e.g., Ethernet), wide areanetwork (WAN), wireless LAN (WLAN), personal area network (PAN),cellular network, etc. As items enter the singulation tool 114, thecontrol system 102 independently controls each of the singulationmodules 130 such that items are singulated when the items exit thesingulation tool 114. As shown, the control system 102 includes a mastercontroller 140 and each singulation module 130 includes a (local)controller 150, a motor 152, sensors 154, and a network interface 156.The master controller 140 provides control signals (or commands) to the(local) controller 150 and/or motor 152 in order to control theoperation of each singulation module 130. For example, the mastercontroller 140 may send stop commands, start commands, acceleratecommands, decelerate commands, and the like which control the operation(e.g., on/off control, speed, acceleration, etc.) of the singulationmodules 130. In one embodiment, the master controller 140 can includeprocessors or micro-controllers. The master controller 140 can includesolely hardware and firmware or can include combinations of hardware andsoftware elements. In one particular embodiment, the master controller140 is a programmable logic controller (PLC).

The (local) controller 150 can be a processor or a micro-controllerwhich receives commands from the master controller 140 (e.g., using thenetwork interface 156) and issues corresponding commands to the motor152, which controls the conveyor belt of the singulation module 130. Inaddition to receiving information from the master controller 140, thecontroller 150 can transmit information to the master controller 140using the network interface 156. For example, the controller 150 cansend information from sensors 154 (e.g., indicating detection and/orposition of items on the singulation module 130), information from motor152 (e.g., regarding current speed of the singulation module), and thelike to the master controller 140. As described further below, themaster controller 140 may use the information received from eachcontroller 150 to determine which commands (e.g., stop command, startcommand, etc.) to send to the controllers 150. The controller 150 caninclude solely hardware and firmware or can include combinations ofhardware and software elements. The network interface 156 maycommunicate using a wired communication protocol (e.g., Ethernet), awireless communication protocol (e.g., WiFi), etc.

Note that while FIG. 1B depicts each singulation module 130 with a(local) controller 150, in some embodiments, each singulation module 130may not be equipped with a local controller (e.g., controller 150). Inthese embodiments, the master controller 140 can send commands directlyto the motor 152 to control a singulation module 130. Similarly, themaster controller 140 can receive feedback information from thesingulation module 130 directly from the motor 152 and/or sensors 154via the network interface 156.

The motor 152 controls the on/off operation and speed of the singulationmodule 130, based on commands received from the controller 150 and/ormaster controller 140. The motor 152 can include, for example, analternating current (AC) motor, direct current (DC) motor, motor drivenroller, servo motor (e.g., integrated servo motor), etc. Sensors 154 aregenerally used for detecting items and/or location (or position) ofitems on the singulation module 130. The sensors 154, for example, caninclude proximity sensors, infrared (IR) sensors, laser (detection)sensors, array sensors, etc. In one embodiment, each singulation module130 includes a position sensor (e.g., array sensor) for detectingpresence and position (or location) of items on the singulation module130. In addition to the presence sensor, in some embodiments, eachsingulation module can include a presence sensor (e.g., laser sensor)for detecting low profile (or thin) items, such as envelopes, letters,etc. In one embodiment, the position sensor (e.g., array sensor) is alight curtain array with multiple zones for item detection and positiondetermination.

As shown in FIG. 1A, after exiting the singulation tool 114, itemstransition through the scan tool 116. The scan tool 116 is generallyconfigured to capture identifying information associated with each itemand interact with the control system 102 and/or the cloud computingservice 160 for verification of the item. That is, the scan tool 116 candetermine whether the item belongs in the particular phase of thefacility operations (in which the automated singulation system 100 isbeing used), whether the item is properly singulated, the subsequentdestination for the item, etc. The identifying information associatedwith the item can include a barcode (e.g., SKU, UPC, etc.), a RFID tag,etc.

As shown in FIG. 1B, the scan tool 116 includes a (local) controller162, sensors 164, camera devices 166, and network interface 168. Thecontroller 162 can be a processor or a micro-controller that controlssensors 164 and camera devices 166. The controller 162 can includesolely hardware and firmware or can include combinations of hardware andsoftware elements. For example, in one embodiment, upon detecting (viasensors 164) that an item has transitioned into the scan tool 116 or anarea (e.g., conveyor belt) in proximity to the scan tool 116, thecontroller 162 uses camera devices 166 to capture the identifyinginformation (e.g., barcode) associated with the item. Similar to sensors154, the sensors 164 may include, for example, proximity sensors, IRsensors, laser sensors, array sensors, etc. In one embodiment, the scantool 116 includes six camera devices 166 for scanning all (six) sides ofan item for the identifying information. In this embodiment, the scantool 116 may include the six camera devices 166 mounted within anenclosed structure (e.g., tunnel). The scan tool 116 may sendinformation associated with the captured identifying information to themaster controller 140 and/or the cloud computing service 160 via thenetwork interface 168. The network interface 168 may communicate using awired communication protocol (e.g., Ethernet), a wireless communicationprotocol (e.g., WiFi), etc.

Note that while FIG. 1B depicts the scan tool 116 with a (local)controller 162, in some embodiments, the scan tool 116 may not beequipped with a local controller (e.g., controller 162). In theseembodiments, the master controller 140 can send commands directly to thecamera devices 166 and/or sensors 164 to control the scan tool 116.Similarly, the master controller 140 can receive feedback informationfrom the scan tool 116 directly from the sensors 164, camera devices166, etc. via the network interface 168.

Based on the identifying information, the master controller 140 and/orthe cloud computing service 160 can determine whether the itemassociated with the identifying information was successfully singulatedwithin the singulation tool 114. For example, if the master controller140 and/or the cloud computing service 160 receives multiple validbarcodes from the scan tool 116 for a single item, the master controller140 and/or the cloud computing service 160 can determine that the itemwas not successfully singulated within the singulation tool 114. Inanother example, if the master controller 140 and/or the cloud computingservice 160 receives valid barcodes for different items within apredetermined amount of time, the master controller 140 and/or the cloudcomputing service 160 can determine that the items were not successfullysingulated (e.g., since they are within a specified gap distance).

As items exit the scan tool 116, the items are transitioned through thedivert tool 118. The divert tool 118 is configured to pass throughsingulated items via junction segments 120 (e.g., to other phases of thefacility) and divert (or re-circulate) non-singulated items back to thesingulation tool 114 via junction segments 122, 124, 126, 128, and 132.As shown in FIG. 1B, the divert tool 118 includes a (local) controller170, one or more motors 172, sensors 174, and a network interface 176.The controller 170 can be a processor or a micro-controller whichreceives commands from the master controller 140 (e.g., using thenetwork interface 176) and issues corresponding commands to the motor(s)172, which control the divert tool 118. The motor(s) 172 can include,for example, AC motors, DC motors, motor driven rollers, servo motors(e.g., integrated servo motors), etc. In one embodiment, the divert tool118 is a dual conveyor belt system controlled by a single motor 172. Inthis embodiment, the dual conveyors may be, for example, motor drivenroller conveyors and the motor 172 may be, for example, a servo motor.The network interface 176 may communicate using a wired communicationprotocol (e.g., Ethernet), a wireless communication protocol (e.g.,WiFi), etc.

Note that while FIG. 1B depicts the divert tool 118 with a (local)controller 170, in some embodiments, the divert tool 118 may not beequipped with a local controller (e.g., controller 170). In theseembodiments, the master controller 140 can send commands directly to themotor(s) 172 and/or sensors 174 to control the scan tool 116. Similarly,the master controller 140 can receive feedback information directly fromthe motor(s) 172, sensors 174, etc. of the divert tool 118.

In some cases, horizontal divert systems (also referred to as horizontaldiverting systems, horizontal recirculating systems, etc.) may not besuitable for diverting a wide variety of different items (e.g.,different sizes, different shapes, etc.) at a high rate. As such, insome embodiments, the divert tool 118 may be implemented as a verticaldivert system (e.g., as opposed to a horizontal divert system). Assumingthe vertical divert system includes two conveyor belts, each of theconveyor belts may pivot vertically (in different directions) around anend hinge point. A first of the two conveyor belts may pivot verticallyaround a first hinge point in a first direction (e.g., downwards) and asecond of the two conveyor belts may pivot vertically around a secondhinge point in a second direction (e.g., upwards). Upon detecting anitem (e.g., via sensors 174), the divert tool 118 may determine whetherthe item is a singulated item or a non-singulated item based oninformation received from the master controller 140 (e.g., via networkinterface 176). If the item is singulated, the controller 170 and/ormaster controller 140 may refrain from actuating the motor 172 to pivotthe conveyor belts. Instead, the controller 170 and/or master controller140 may control the conveyor belts to transition the item through thedivert tool 118. On the other hand, if the item is non-singulated, thecontroller 170and/or master controller 140 may control the motor 172 topivot the conveyor belts. When pivoted, the item may fall from the dualconveyor belts to another conveyor belt (e.g., junction segment 122)beneath junction segment 120 that transitions the item back to thesingulation tool 114 for another singulation attempt.

FIGS. 5A-5E depict different views of an apparatus 500 that can bedeployed within a singulation tool 114, according to one embodiment. Inparticular, FIGS. 5A-5E show a perspective view, a first side view, asecond side view, a top view, and a bottom view, respectively, of theapparatus 500. The apparatus 500 is one example of the singulationmodule 130 depicted in FIGS. 1A-1B.

The apparatus 500 includes a frame 530, which provides a structure forhousing and/or mounting various components (e.g., sensors, motors,locking mechanisms, belt, rollers, etc.) of the apparatus 500. In oneembodiment, the frame 530 includes a lightweight metallic material(e.g., aluminum, aluminum alloy, etc.) that enables the apparatus 500 tohave a modular structure. For example, the frame 530 allows forapparatus 500 to be easily handled for maintenance and transportation,components of the apparatus 500 to be removed/replaced, and the like.The frame 530 includes a first side member 532 and a second side member534, which are connected to each other via connecting members 536 and538. As shown, e.g., in FIG. 5E, the connecting members 536 and 538 mayinclude one or more cutouts 540 to reduce weight of the frame 530. Notethe frame 530 is merely one example of a suitable structure for theapparatus 500. In general, the frame 530 can have any other suitablestructure and/or material that provides a modular structure for theapparatus 500.

The apparatus 500 includes a (front) roller 520, a (rear) roller 522,and a belt 512 (collectively referred to as a conveyor belt) thatrotates around the rollers 520 and 522. As shown, each end of therollers 520 and 522 is attached to a different side of the frame 530(e.g., via screws, bolts, brackets, etc.). For example, one end of theroller 520 is attached to the side member 534 of the frame 530 and theopposite end of the roller 520 is attached to the side member 532 of theframe 530. Similarly, one end of the roller 522 is attached to the sidemember 534 of the frame 530 and the opposite end of the roller 520 isattached to the side member 532 of the frame 530. A guide rail 516 isattached to the side member 532 of the frame 530 and a guide rail 514 isattached to the side member 534 of the frame 530. The frame 530 houses amotor 550 (e.g., servo motor) and pulley drive system 580 for rotatingthe belt 512 around the rollers 520 and 522. In particular, the motor550 is attached to the side member 534 of the frame 530 below the belt512. In one embodiment, the pulley drive system 580 is a tooth beltdrive system. A power port 590 and a network interface 570 (e.g.,Ethernet interface) for the apparatus 500 are attached to the connectingmember 538 of the frame 530. The network interface 570 is one example ofthe network interface 156 of the singulation module 130 depicted inFIGS. 1A-1B.

In some embodiments, the belt 512 may include multiple layers, e.g., inorder to reduce likelihood of items being damaged when they impact thesurface of the belt 512. As shown in FIG. 5D, the belt 512 includes afirst layer 542 and a second layer 544 disposed beneath the first layer542. In one embodiment, the first layer 542 includes a plastic material(e.g., a polyethylene, such as ultra-high-molecular-weight polyethylene(UHMW)). When used as the surface layer of the belt 512, the first layer542 may provide a rigid surface to grip items that impact the belt 512.The second layer 544 is used under the first layer 542 and providesadditional dampening to the belt 512 (e.g., for absorbing impacts ofitems on the belt 512). In one embodiment, the second layer 544 includesa foam. The foam can include sheet foam, spray foam (e.g., an open cellspray foam, such as polyurethane open cell spray foam), etc. In oneembodiment, the second layer 544 may have a thickness less than or equalto approximately 3/16 of an inch. With a thickness in this range, thesecond layer 544 can provide additional dampening to the belt 512 andreduce the chances of the first layer 542 being pierced by sharp objectsthat impact the belt 512.

As shown, the apparatus 500 also includes magnetic locks 502A-C that arefixed to the frame 530 (e.g., via screws, bolts, brackets, etc.). Inparticular, magnetic locks 502A and 502B are attached to a bottomportion of the side member 532 of the frame 530 and magnetic lock 502Cis attached to a bottom portion of the side member 534 of the frame 530.As described further below, the magnetic locks 502A-C are used to securethe apparatus 500 to the (frame of the) singulation tool 114. Forexample, the magnetic locks 502A-C provide a quick mechanism forengaging/disengaging the apparatus 500 to/from a (horizontal) mountinglocation of the singulation tool 114. This allows for the apparatus 500to be quickly changed out for maintenance, relocated to a differentlocation of the singulation tool 114, etc. Note, that the magnetic locks502A-C are just one example of a suitable locking mechanism for securingthe apparatus 500 to the singulation tool 114. In general, the apparatus500 can be secured to the singulation tool 114 via a variety ofmechanical locking mechanisms (e.g., clamps, pins, etc.) and electriclocking mechanisms that allow the apparatus 500 to have modularity.

In addition to the magnetic locks 502A-C, the apparatus 500 includesfour locating pins 560 for aligning the apparatus to the particularmounting location of the singulation tool 114. Two locating pins 560 areattached to the bottom of side member 532 of the frame 530 and twolocating pins 560 are attached to the bottom of side member 534 of theframe 530. As described further below, the singulation tool 114 mayinclude a set of frame members (or connectors) that define a particularmounting location for each apparatus 500. The set of frame members mayinclude holes with locations corresponding to the locating pins 560,such that the locating pins 560 can drop into the holes when theapparatus 500 is aligned over the hole locations. This feature allowsthe apparatus 500 to sit in place within the frame 530 of thesingulation tool 114 and provides a fail-safe during operation of theapparatus 500. For example, the locating pins 560 can reduce thelikelihood of the apparatus 500 coming out of position during operationin situations where the apparatus 500 is not properly secured to theframe via the magnetic locks 502A-C.

As noted, the singulation module 130 may include multiple sensors fordetecting items placed on the singulation module 130. Here, theapparatus 500 includes an array sensor 508 housed within the guide rails514 and 516. The array sensor 508 is used for detecting items that maybe present on the belt 512, e.g., along sensing length 592. The arraysensor 508 includes multiple emitter elements 508A housed within theguide rail 514 and multiple receiver elements 508B housed within theguide rail 516. The multiple emitter elements 508A and the multiplereceiver elements 508B are closely spaced apart (e.g., on the order ofmillimeters) along the sensing length 592. The array sensor 508 candetect item(s) on the belt 512, based on the particular beams blocked bythe item(s). As described further below with reference to FIG. 12, thearray sensor 508 can be configured to detect position of item(s) on thebelt 512 within one or more location zones, where each location zonecorresponds to a particular area along the length of the belt 512. Thenumber of location zones that can be detected may be based in part onthe beam spacing of the emitter elements 508A.

In addition to the array sensor 508, the apparatus 500 includes a lasersensor 504 with a transmitting element 504A and a receiving element504B. The transmitting element 504A is attached to a track 506A, whichis attached to the side member 532 of the frame 530 (e.g., via screws,bolts, brackets, etc.). The receiving element 504B is attached to atrack 506B, which is attached to the side member 534 of the frame 530(e.g., via screws, bolts, brackets, etc.). The tracks 506A and 506Ballow for adjusting the position of the laser sensor 504 (e.g., along alength of the tracks 506A and 506B). The laser sensor 504 is used fordetecting thin (or low profile or low height) items (e.g., envelopes,credit cards, giftcards, mail, etc.) that may not be detected by thearray sensor 508.

The apparatus 500 includes a sensor configuration module 524 attached tothe side member 523 of the frame 530. The sensor configuration module524 provides easy accessibility to the laser sensor 504, e.g., forsensor calibration. The apparatus 500 also includes a plate 510 attachedbetween the side members 532 and 534 of the frame 530 at the front ofthe apparatus 500. The plate 510 helps to reduce jams that may occur inthe gaps between the apparatus and another (downstream) apparatus 500when items transition from the apparatus 500 to the other (downstream)apparatus 500. As shown in FIGS. 5B-C, the plate 510 includes a slot 528for adjusting (e.g., rotation of) the plate 510.

By using the apparatus 500 for the structure of the singulation module130, the singulation module 130 can be quickly changed out with anyother singulation module 130 within the singulation tool 114 in casesof, e.g., failure of a singulation module 130, maintenance of asingulation module 130, etc. In this manner, embodiments provide amodular singulation tool with multiple identical singulation modules130.

FIGS. 6A-6B depict a top view and perspective view, respectively, of anexample frame structure 600 for a singulation tool 114, according to oneembodiment. The frame structure 600 includes vertical support members606 A-G attached to the base 602 (e.g., via screws, bolts, brackets,etc.). In this embodiment, each vertical support member 606 includes oneor more frame members 610 attached to the vertical support member 606 atdifferent heights. As shown in FIG. 6B, for example, vertical supportmember 606A includes two frame members 610 and vertical support member606B includes three frame members 610.

The frame members 610 provide a flat horizontal mounting surface forattaching to a singulation module 130. Here, each frame member 610includes one or more clamp plates 612 that provides a flat mountingsurface for magnetic lock(s) 502 of the apparatus 500. In general, thenumber of frame members 610 attached to a vertical support member 606and/or the number of clamp plates attached to a frame member 610 maydepend on the particular configuration (e.g., spiral, whirlpool, etc.)of the singulation tool 114.

In this embodiment, a mounting location for each singulation module 130(e.g., apparatus 500) is provided by two frame members 610. Referring toFIG. 6A, the frame member 610 attached to the vertical support member606A and the frame member 610 attached to the vertical support member606E provide a first mounting location for a first apparatus 500. Inthis example, the magnetic locks 502A-C of the first apparatus 500 cansecure to the frame structure 600 via clamp plates 612A-C, respectively.Still referring to FIG. 6A, a second mounting location for a secondapparatus 500 is provided by the frame member 610 attached to thevertical support member 606E and the frame member 610 attached to thevertical support member 606. For example, the magnetic locks 502A-C ofthe second apparatus 500 can secure to the frame structure 600 via clampplates 612 D-F, respectively.

In some embodiments, the frame structure 600 can include an internalguard structure (or shielding) 620 to protect vertical support members606 E-G (e.g., from damage), prevent items from falling out of thesingulation modules 130 into an interior of the frame structure 600,etc. The guard structure 620 can include any suitable material, e.g.,plastic, metal, etc. In one particular embodiment, the guard structure620 includes a polycarbonate material housed within a metallic (e.g.,aluminum) frame. In some embodiments, the frame structure 600 caninclude pockets 622 integrated within the base 602 for transporting thesingulation tool 114. For example, in one embodiment, the base 602 canbe a pallet base with forklift pockets 622 (e.g., for easytransportation and reconfiguration on site).

FIG. 7 depicts a perspective view of an example frame structure 700 fora singulation tool 114, according to one embodiment. Compared to theframe structure 600, the frame structure 700 includes additional guardstructure (or shielding) 702 at the opposite ends of vertical supportmembers 606 E-G. In particular, the guard structure 702 is locatedbetween each level (or tier) of singulation modules 130. The guardstructure 702 can include any suitable material, e.g., plastic, metal,etc. In one particular embodiment shown in FIG. 7A, the guard structure702 includes a polycarbonate material 706 housed within a metallic(e.g., aluminum) frame 704. The guard structures 702 may be mounted tothe frame structure 700 via connecting members 710 (e.g., pipes, rods,etc.) which attach to one of vertical support members 606 E-G. As shownin FIG. 7A, for example, a first end of the connecting member 710 isattached to the vertical support member 606E and a second (opposite) endof the connecting member 710 is attached to the guard structure 702(e.g., via a strut channel, clamp plate, bolts, etc.). The guardstructures 702 can be used to prevent items from falling out of thesingulation modules 130 outside of the frame structure 700 (e.g., at theexterior sides).

As shown in FIG. 7B, in addition to the guard structure 702, the framestructure 700 includes corner structure members 720 located at thecorners of the frame structure 700. Each corner structure member 720includes a guard structure 722 (e.g., polycarbonate material) housedwithin a top frame member 724 and a bottom frame member 726. The top andbottom frame members 724 and 726 can be attached to each other via aclamp plate 728. The corner structure members 720 form curved cornerguards that can be used to prevent items from falling out of thesingulation modules 130 (e.g., at the corners). Further, in some cases,the corner structure members 720 can aid in singulation of items beingtransitioned through the singulation tool 114, e.g., by changingposition of the items at the corners.

FIGS. 8A-8D depict different views of an apparatus 800 that can be usedas the singulation tool 114, according to one embodiment. In particular,FIGS. 8A and 8B show a perspective view and a top view, respectively, ofthe apparatus 800 and FIGS. 8C and 8D show different side views of theapparatus 800. The apparatus 800 is one example of the singulation tool114 depicted in FIGS. 1A-1B.

In this particular embodiment, the apparatus 800 includes multipleidentical apparatuses 500 A-N (e.g., singulation modules 130) deployedin a spiral configuration. Each apparatus 500 is an upstream singulationmodule and/or a downstream singulation module with respect to anotherapparatus 500 in the apparatus 800. That is, each apparatus 500 isdisposed adjacent to another apparatus 500, such that the belt 512 ofthe apparatus 500 is at a height above or below the belt 512 of theother apparatus. For example, the first apparatus 500A is an upstreamsingulation module with respect to apparatus 500B, apparatus 500B is adownstream singulation module with respect to apparatus 500A and anupstream singulation module with respect to apparatus 500C, and so on.FIG. 8C1 shows one reference example of the waterfall height differencebetween apparatus 500M and apparatus 500N. FIG. 8D1 shows anotherreference example of the waterfall (corner) height difference betweenapparatus 500C and apparatus 500D.

The apparatus 800 may include apparatuses 500 deployed in multiplelevels (or tiers) (e.g., as shown in FIG. 8C) of progressively lowerheights. Each level corresponds to a predefined elevation (or height)range with respect to the ground. In this example, tier/level 1 includesapparatuses 500A-F, tier/level 2 includes apparatuses 500G-L, andtier/level 3 includes apparatuses 500M-N.

FIGS. 9A-9C depict different views of an apparatus 900 that can be usedfor diverting (and/or passing through) items that exit the singulationtool 114, according to one embodiment. In particular, FIGS. 9A-9C show aperspective view, a top view, and a front view of the apparatus 900. Theapparatus 900 is one example of the divert tool 118 depicted in FIGS.1A-1B.

The apparatus 900 includes a first conveyor belt 902 and a secondconveyor belt 904, each configured to rotate vertically around an endhinge point at the same time. For example, the first conveyor belt 902is configured to rotate around roller 906 in a first vertical direction(e.g., negative z direction) and the second conveyor belt 904 isconfigured to rotate around roller 908 in a second vertical direction(e.g., positive z direction). The apparatus 900 includes a motor (e.g.,servo motor) that drives two pulleys 910 and 920, e.g., in order toactuate both conveyor belts 902 and 904 simultaneously. As shown in FIG.9A1, in some embodiments, the apparatus 900 can use a clamping mechanism924 to suspend the end of the conveyor belt 904, e.g., in order tocreate identical ranges of motion between the two conveyor belts 902 and904.

In one embodiment, the apparatus 900 can be used to pass throughsuccessfully singulated items that exit the scan tool 116 and/or divertunsuccessfully singulated (e.g., non-singulated) items back to thesingulation tool 114. As shown in FIG. 9, the apparatus 900 includes a(tapered) chute 912 for passing through successfully singulated itemsfrom the second conveyor belt 904 and a chute 914 for divertingnon-singulated items from the first conveyor belt 902. As shown in FIG.9A1, in some embodiments, the apparatus 900 can include one or moresensors 922 (e.g., proximity sensors, over-travel sensors, etc.)attached to each conveyor belt to detect position of the conveyor belt(e.g., as it rotates). In one reference example of the conveyor belt 902shown in FIG. 10, the conveyor belt 902 includes multiple laser sensors(or photoeyes) 1008 and 1006A-C for detecting items on the belt 1010.The laser sensors 1006A-C are used to trigger actuation of the conveyorbelts 902 and 904. In one embodiment, for example, when all of the lasersensors 1006A-C are triggered (indicating presence of an item), themaster controller 140 triggers rotation of the conveyor belt 902 and theconveyor belt 904.

FIG. 11 depicts a side view of an apparatus 1100 that can be used fordiverting items that exit the singulation tool 114, according to oneembodiment. The apparatus 1100 is one example of the divert tool 118. Inthis particular embodiment, the apparatus 1100 is configured to passsuccessfully singulated items through the conveyor belts 902 and 904 toa tote on the junction segment 120. Similarly, the apparatus 1100 isconfigured to divert (e.g., by rotating the conveyor belts 902 and 904around their respective end hinge points) unsuccessfully singulateditems to the junction segment 122, which is underneath the conveyor belt904, for recirculation through the singulation tool 114.

In some embodiments, the apparatus 1100 includes stops (e.g., rubberstops) 1102 and 1104 as an additional fail-safe, e.g., to prevent theover-travel of the switching motion of conveyor belts 904 and 902,respectively. As shown, the motor 930 and control system 1006 (e.g.,similar to controller 170) are mounted outside of the switch frame toimprove access for maintenance.

As discussed above, each singulation module 130 can include multiplesensors (e.g., array sensors, laser sensors, etc.) for detecting itemson the singulation module 130. In some embodiments, the singulationmodule 130 can use position (e.g., array) sensors to detect position ofitems on the singulation module 130. FIG. 12 illustrates one example ofa singulation module 130 using an array sensor to detect location ofitems on the singulation module, according to one embodiment. In thisembodiment, the singulation module 130 can detect items along a length1220 (e.g., similar to sensing length 592) of the singulation module130. In this example, the length 1220 is divided into five different(location) zones 1-5, where each location zone represents a differentportion of the length 1220. Note that FIG. 12 uses five zones merely asa reference example of the number of location zones that can be detectedwith the array sensor. Those of ordinary skill in the art will recognizethat the resolution (e.g., number of location zones) can be higher orlower (e.g., more or less than five). In general, the number of locationzones is dependent on the number of emitter elements of the array sensorand the beam spacing between those emitter elements. Further, the “box”shaped items 1202, 1204, 1206, 1208, and 1210 generally represent itemsof various different shapes, sizes, configurations, etc.

In this particular embodiment, the singulation module 130 can determinewhich of the zones 1-5 a particular item is located in based on theparticular beams (e.g., in the zone) that are blocked by an item. Usingitem 1208 as an example, the singulation module 130 can detect that item1208 is in zone 5 based on the beams that are blocked by item 1208(e.g., in zone 5). In another example, the singulation module can detectthat an item (e.g., item 1206) is in multiple zones 3 and 4.

In some cases, the singulation module 130 may be unable to determine ifthere are multiple items present on the singulation module from thearray sensor. For example, items 1202 and 1204 may appear as a singleitem to the array sensor, since at least a portion of the items 1202 and1204 are in parallel. Additionally, in some cases, the array sensor maynot be able to detect low-profile items (e.g., item 1210) on thesingulation module. In these cases, the singulation module can use alaser sensor to detect low-profile items, such as item 1210. While thesingulation module 130 can use the array sensor to detect position ofitems along length 1220, the array sensor may not be able to determineposition of items along width 1222.

The master controller 140 independently controls the speed of eachsingulation module 130 within the singulation tool 114, based on sensorfeedback from one or more of the singulation modules 130, theconfiguration of the singulation modules 130 (e.g., linear orperpendicular orientation with respect to other singulation modules130), etc. In some embodiments, the master controller 140 controls thesingulation modules 130, so that items are singulated to a specified gapdistance in order to maintain a predetermined rate (e.g., UPH). In oneexample, the rate may be a predetermined number of units that exit thesingulation tool 114 in a given time period. In another example, therate may be a predetermined number of units that are scanned by the scantool 116 (e.g., after exiting the singulation tool 114). As describedbelow, to maintain the rate, the master controller 140 can control thesingulation modules 130 to increase gaps between items as theytransition through the singulation tool 114 and/or decrease gaps betweenitems as they transition through the singulation tool 114.

FIGS. 13A-C illustrate an example scenario 1300 of controllingsingulation modules 130A-B that are in a linear configuration, accordingto one embodiment. Here, in FIG. 13A, the master controller 140 runssingulation modules 130A and 130B and can detect items 1302 and 1304 onsingulation module 130A. In FIG. 13B, as the item 1304 transitions ontothe singulation module 130B, the master controller 140 can determinewhether the distance between items 1302 and 1304 satisfies a gapcondition (e.g., gap is below a threshold distance for a predeterminedrate), based on sensor feedback from singulation modules 130A and 130Bregarding the triggered zones in each singulation module 130A and 130B.

Here, as shown in FIG. 13B, the master controller 140 determines thatthe distance (di) between the items 1302 and 1304 does not satisfy thegap condition (e.g., di is below a threshold gap distance). In response,the master controller 140 stops singulation module 130A and runssingulation module 130B. Subsequently, as shown in FIG. 13C, the mastercontroller 140 runs singulation modules 130A and 130B (e.g., afterdetecting that the distance d2 between the items 1302 and 1304 satisfiesthe gap condition). In some embodiments, as opposed to stoppingsingulation module 130A and running singulation module 130B (e.g., afterdetermining di is below a threshold gap distance), the master controller140 can reduce the speed of singulation module 130A relative tosingulation module 130B or increase the speed of singulation module 130Brelative to singulation module 130A. In some embodiments, the mastercontroller 140 can determine the distance d1 and d2 based on sensorfeedback indicating the zones that are triggered and motor feedbackindicating the speeds of each of the singulation modules 130A and 130B.

FIGS. 14A-C illustrate an example scenario 1400 of controllingsingulation modules 130A-B that are in a linear configuration, accordingto one embodiment. As shown in FIG. 14A, when item 1404 is in zone 4 ofsingulation module 130B, the item 1402 is in zone 1 of singulationmodule 130A. The master controller 140 can determine that the distancedi between items 1402 and 1404 does not satisfy a gap condition (e.g.,di is greater than a threshold distance) for a predetermined rate. Inresponse, the master controller 140 (as shown in FIG. 14B) increases thespeed of singulation module 130A, e.g., to decrease the gap distancebetween items 1402 and 1404from di to d2. As shown in FIG. 14C, themaster controller 140 resumes running singulation modules 130A and 130Bat their respective previous speeds. In some embodiments (not shown),the master controller 140 may stop singulation module 130B (or decreasethe speed of singulation module 130B) and continue to run singulationmodule 130A, e.g., to decrease the gap distance between items 1402 and1404 from d1 to d2.

FIGS. 15A-B illustrate an example scenario 1500 of controllingsingulation modules 130A-B in jamming conditions, according to oneembodiment. In some cases, a jamming condition can occur in scenarioswhere long items (or obtuse or irregular items) transition from onesingulation module (e.g., singulation module 130A) to anothersingulation module (e.g., singulation module 130B). In FIG. 15A, forexample, as the item 1502 begins to transition onto the singulationmodule 130B, the item 1502 is detected by the presence (e.g., laser)sensor on singulation module 130A. In one reference example, thepresence sensor on singulation module 130A can return to the mastercontroller 140 a value of “1” for “item detected” to indicate that anitem is present at the edge of the singulation module 130A. In thisparticular scenario, if the master controller 140 determines there hasbeen no change in the state of the presence sensor for a predeterminedamount of time, the master controller 140 may refrain from stoppingsingulation module 130A. Here in FIG. 15A, for example, the mastercontroller 140 determines that there has been no change in the value for“item detected” from the presence sensor for a predetermined amount oftime (e.g., the value of “1” has not changed). In response, mastercontroller 140 continues to run singulation modules 130A and 130B (e.g.,as opposed to stopping singulation module 130A when a portion of item1502 is detected on singulation module 130B) to prevent item 1502 fromgetting stuck (or jammed) between singulation module 130A andsingulation module 130B. In this manner, the master controller 140 canprevent jamming conditions that may occur in the singulation tool 114.

FIGS. 16A-C illustrate an example scenario 1600 of controllingsingulation modules 130A-B that are in a perpendicular configuration,according to one embodiment. Here, in FIG. 16A, the master controller140 runs singulation modules 130A and 130B and can detect items 1602 and1604 on singulation module 130A. In FIG. 16B, as the item 1604transitions onto the singulation module 130B, the item 1602 is detectedby the laser sensor on singulation module 130A. In some embodiments, themaster controller 140 at this point can decide whether to continuerunning singulation module 130A based on the position of the item 1604on singulation module 130B. Here, for example, after the mastercontroller 140 detects item 1602 with the laser sensor on singulationmodule 130A, the master controller 140 determines whether the item 1604is within a predefined region on singulation module 130B. In thisexample, the predefined region on singulation module 130B corresponds tozones 1-3 with an area approximately equal to the width 1622 of thesingulation module 130A times the width 1626 of the singulation module130B.

Because the master controller 140 may not be able to determine the exactposition of the item 1602 on singulation module 130A along the width1622, the master controller 140 may refrain from running singulationmodule 130A (e.g., when item 1602 is detected by the laser sensor onsingulation module 130A) until it can determine that the item 1604 (andother items that may be present on singulation module 130B) has clearedthe predefined region and the minimum gap distance 1624 from thepredefined region. Doing so allows the master controller 140 to ensurethat at least a minimum gap distance 1624 exists between items on thesingulation module 130B and the singulation module 130A, e.g., in caseswhere the item 1602 is located on the bottom side edge of thesingulation module 130A. Thus, as shown in FIG. 16B, after detectingitem 1602 with the laser sensor on singulation module 130A, the mastercontroller 140 stops singulation module 130A while the item 1604 iswithin width 1622 and minimum gap distance 1624, and runs singulationmodule 130B. Subsequently, as shown in FIG. 16C, the master controller140 runs both singulation modules 130A and 130B, e.g., after the item1604 has cleared the minimum gap distance 1624.

FIGS. 17A-C illustrate an example scenario 1700 of controllingsingulation modules 130A-B that are in a perpendicular configuration,according to one embodiment. As shown in FIG. 17A, when item 1704 is inzone 5 of singulation module 130B, the item 1702 is in zone 1 ofsingulation module 130A. Here, the master controller 140 may determinethat the minimum gap between the items 1704 and 1702 is approximatelyequal to the sum of length 1726 and minimum gap distance 1624, and thatthe minimum gap is greater than a threshold distance (e.g., for apredetermined rate). In response, the master controller (as shown inFIG. 17B) increases the speed of singulation module 130A, e.g., todecrease at least a portion of the length 1726. In some embodiments,once the item 1702 is detected by the laser sensor on singulation module130A, the master controller 140 may determine whether any items onsingulation module 130B are within the predefined region beforetransitioning the item 1702 onto the singulation module 130B. As shownin FIG. 17B, the master controller 140 returns the singulation module130A to normal speed after determining that the item 1704 has clearedthe minimum gap distance 1624. Here, for example, the item 1704 is atleast a distance 1728 away from the predefined region.

FIGS. 18A-B illustrate an example scenario 1800 of item detection whentransitioning between singulation modules 130A-130B in a perpendicularconfiguration, according to one embodiment. As noted above, in somecases, multiple items may not be detected by the singulation module,e.g., if the items are parallel with respect to one another in the samezone. As shown in FIG. 18A, for example, the singulation module 130A mayinfer that there is an item present in zone 6 of the singulation module130A, but may not be able to detect that there are two items 1802 and1804. To address this problem, embodiments can deploy singulationmodules in a perpendicular configuration, e.g., at various locationswithin the singulation tool 114, to increase the chances for itemdetection, and in turn singulation. As shown in FIG. 18B, for example,as the items 1802 and 1804 transition from singulation module 130A tosingulation module 130B, item 1802 is detected in zone 1 of thesingulation module 130B and item 1804 is detected in zone 4 of thesingulation module 130B.

FIG. 19 is a flowchart illustrating a method 1900 for singulating itemsusing multiple singulation modules (e.g., singulation modules 130, suchas apparatus 500), according to one embodiment. The method 1900 may beperformed by the control system 102.

The method 1900 begins at block 1902, where the control system 102detects a first item on a first singulation module (e.g., singulationmodule 130B). At block 1904, the control system 102 detects a seconditem on a second singulation module (e.g., singulation module 130A). Thefirst singulation module is a downstream singulation module relative tothe second singulation module. At block 1906, the control system 102determines an orientation (or configuration) of the first singulationmodule relative to the second singulation module. For example, in oneembodiment, the control system 102 determines whether the first andsecond singulation modules are in a perpendicular orientation or in alinear orientation.

If, at block 1908, the control system 102 determines the first andsecond singulation modules are not in a perpendicular orientation (e.g.,the control system 102 determines the first and second singulationmodules are in a linear configuration), the control system 102determines a distance between the first item and the second item (block1910). In some embodiments, the control system 102 can determine thedistance between the first item and the second item based on at leastone of: (1) the speed of each of the first singulation module and thesecond singulation module and (2) the particular zones triggered by theitems (e.g., zone 1 of the first singulation module may have apredefined distance to zone 3 of the second singulation module, etc.).At block 1914, the control system 102 controls the first singulationmodule and the second singulation module based on the distance betweenthe first item and the second item.

If, at block 1908, the control system 102 determines the first andsecond singulation modules are in a perpendicular orientation, thecontrol system 102 determines the position of the first item on thefirst singulation module and the position of the second item on thesecond singulation module (block 1912). For example, as discussed abovewith regard to FIGS. 16A-C, the control system 102 can determine theposition of the first item (e.g., item 1604) along a length of the firstsingulation module and determine the position of the second item (e.g.,item 1602) along a length of the second singulation module. At block1916, the control system 102 controls the first singulation module andthe second singulation module based on the position of the first item onthe first singulation module and the position of the second item on thesecond singulation module. In one embodiment, for example, as discussedabove with regard to FIGS. 16A-C, after the first item transitions tothe first singulation module, the control system 102 may continue to runthe second singulation module until the second item reaches (and isdetected by) the laser sensor on the second singulation module. In thisembodiment, the control system 102 may refrain from running the secondsingulation module, e.g., when the second item reaches the laser sensoron the second singulation module and when the first item is still withina predefined region (and/or a minimum gap distance from the predefinedregion) on the first singulation module. Similarly, in this embodiment,the control system 102 may run the second singulation module, e.g., whenthe first item has cleared the minimum gap distance from the predefinedregion on the first singulation module.

FIG. 20 is a flowchart illustrating a method 2000 for controllingsingulation modules in a linear orientation (e.g., singulation modules130, such as apparatus 500), according to one embodiment. The method2000 begins at the start of block 1914 of the method 1900. The method2000 may be performed by the control system 102.

The method 2000 begins at block 2002, where the control system 102determines a current rate of items exiting the singulation tool (e.g.,singulation tool 114). In one embodiment, the control system 102 candetermine the current rate based on a number of items detected by thelast downstream singulation module (e.g., apparatus 500N) of thesingulation tool 114 within a time period. At block 2004, the controlsystem 102 determines if the current rate is equal to the desired rate(or, in some embodiments, within a threshold range of the desired rate).If so, the method ends.

If the current rate is not equal to the desired rate (or is not within athreshold range of the desired rate), the control system 102 determinesif the singulation tool is below the desired rate (or above the desiredrate) (block 2006). If the singulation tool is below the desired rate,the control system 102 controls the first and second singulation modulesto reduce the distance between the first and second items (e.g., inorder to increase the current rate) (block 2008). If the singulationtool is not below the desired rate (e.g., the singulation tool is abovethe desired rate), the control system 102 controls the first and secondsingulation modules to increase the distance between the first andsecond items (e.g., in order to reduce the current rate) (block 2010).

FIG. 21 is a flowchart illustrating a method 2100 for controllingsingulation modules in a perpendicular orientation (e.g., singulationmodules 130, such as apparatus 500), according to one embodiment. Themethod 2100 begins at the start of block 1916 of the method 1900. Themethod 2100 may be performed by the control system 102.

The method 2100 begins at block 2102, where the control system 102determines whether the position of the first item on the firstsingulation module is within a predefined region on the firstsingulation module. For example, in one embodiment, the predefinedregion may have an area approximately equal to the width of the secondsingulation module times the width of the first singulation module. Thepredefined region on the first singulation module may start from a firstend of the belt on the first singulation module and extend along alength of the belt on the first singulation module. If, at block 2102,the control system 102 determines the first item is within thepredefined region, the control system 102 determines whether the seconditem has been detected by the laser sensor on the second singulationmodule (e.g., whether the position of the second item has reached thelaser sensor on the second singulation module) (block 2104). If thesecond item is detected by the laser sensor, the control system 102stops the second singulation module and continues to run the firstsingulation module (block 2106).

If the control system 102 determines the second item has not beendetected by the laser sensor (block 2104), the method proceeds to block2106. In one embodiment, the control system 102 may continue to run thesecond singulation module if the second item has not been detected bythe laser sensor on the second singulation module. Similarly, if thecontrol system 102 determines that the first item is not within thepredefined region, the method proceeds to block 2108. At block 2108, thecontrol system 102 determines the current rate of items exiting thesingulation tool.

If, at block 2110, the control system 102 determines that the currentrate is equal to the desired rate (or within a threshold range of thedesired rate), the method ends. If, at block 2110, the control system102 determines that the current rate is not equal to the desired rate(or is not within a threshold range of the desired rate), the controlsystem 102 determines if the singulation tool 114 is below the desiredrate (or above the desired rate) (block 2112). If the singulation toolis below the desired rate, the control system 102 controls the first andsecond singulation modules to reduce the distance between the first itemand the predefined region (e.g., in order to increase the current rate)(block 2114). If the singulation tool is not below the desired rate(e.g., the singulation tool is above the desired rate), the controlsystem 102 controls the first and second singulation modules to increasethe distance between the first item and the predefined region (e.g., inorder to reduce the current rate) (block 2116). When controlling thefirst and second modules, the control system 102 may ensure that thefirst item and the second item are separated by at least the minimum gapdistance (e.g., minimum gap distance 1624) on the first singulationmodule (e.g., singulation module 130B).

In some cases, different totes may be associated with different types ofitems. For example, a first tote may include items having a first size(e.g., 50 textbooks), and a second tote may include items having asecond size (e.g., 50 giftcards). In such cases, the operating settings(e.g., speed settings) of the different singulation modules 130 withinthe singulation tool 114 that are used for singulating items from thefirst tote may not be suitable for singulating items from the secondtote. As such, embodiments provide techniques that can configureoperating parameters (e.g., speed, gap distance, etc.) of thesingulation modules 130 within the singulation tool 114, based on thetype of items that enter the singulation tool 114.

FIG. 22 is a flowchart illustrating a method 2100 for configuringsingulation modules (e.g., singulation modules 130, such as apparatus500) based on a type of items, according to one embodiment. The method2200 may be performed by the control system 102 for each incoming tote.

The method 2200 begins at block 2202, where the control system 102determines a type of items associated with the incoming tote. In oneembodiment, the control system 102 can determine the type of items basedon information obtained from a scan of the incoming tote. In oneexample, the scan may be performed by an operator (e.g., human, machine,etc.) prior to the items being received in the loading area 112.

At block 2204, the control system 102 selects a configuration model forthe singulation tool (e.g., singulation tool 114) from a plurality ofconfiguration models, based on the type of items. In one embodiment, theconfiguration models can be stored in a database, e.g., in the cloudcomputing service 160. The cloud computing service 160, for example, canuse machine learning techniques to continually update the configurationmodels based on input from other singulation tools 114 (e.g., in thefacility). The control system 102 can request the particularconfiguration model to use for the type of items from the cloudcomputing service, and receive a response indicating the configurationmodel. In another embodiment, the configuration model can be selectedbased on a predefined association between the type of items and aconfiguration model. In this embodiment, the control system 102 canrevert to a default configuration model, e.g., in cases where apredefined association does not exist for a given type of items. Atblock 2206, the control system 102 configures the singulation modules ofthe singulation tool according to the selected configuration model.

FIG. 23 is a flowchart illustrating a method 2300 for controllingsingulation modules (e.g., singulation modules 130, such as apparatus500) to prevent (or reduce occurrence of) jamming conditions, accordingto one embodiment. The method 2300 may be performed by the controlsystem 102.

The method 2300 begins at block 2302, where the control system 102detects a first item (e.g., item 1502) on a first singulation module(e.g., singulation module 130A), based on an indication received from afirst sensor on the first singulation module. At block 2304, the controlsystem 102 detects a second item (e.g., item 1502) on a secondsingulation module (e.g., singulation module 130B) after detecting thefirst item on the first singulation module. At block 2306, the controlsystem 102 determines if there has been a change in the indication fromthe first sensor after a predetermined amount of time. If so, thecontrol system 102 stops the first singulation module and runs thesecond singulation module (block 2310). On the other hand, if there hasnot been a change, the control system 102 refrains from stopping thefirst singulation module and runs the second singulation module (block2308).

FIG. 24 is a flowchart illustrating a method 2400 for recirculatingnon-singulated items through a singulation tool (e.g., singulation tool114), according to one embodiment. The method 2400 may be performed bythe control system 102.

The method 2400 may be performed for each item exiting the singulationtool. In one embodiment, the control system 102 can receive anindication of each item exiting the singulation tool. In one example,the control system 102 may receive sensor feedback from the lastdownstream singulation module (e.g., apparatus 500N) indicating presenceof an item. In another example, the control system 102 may receivesensor feedback from the scan tool (e.g., scan tool 116) indicatingpresence of an item.

At block 2402, the control system 102 scans the at least one item, e.g.,using the scan tool. At block 2404, the control system 102 determines,based on the scan, if a divert condition is present. The divertcondition can include at least one of: (1) detecting multiple valididentifying information (e.g., barcodes) on the item; (2) detectingmultiple items within a predetermined time period (or within a specifiedgap distance); and (3) failure to read identifying information on theitem.

In response to detecting a divert condition (block 2404), the controlsystem 102, at block 2406, controls the divert tool (e.g., divert tool118, such as apparatus 900, apparatus 1000, etc.) to recirculate theitem back to the singulation tool 114. For example, in one embodiment,the control system 102 can trigger the divert tool to simultaneouslyrotate conveyor belts 902 and 904 around their respective hinge pointsin opposite vertical directions. In this manner, the item can betransitioned from the conveyor belt 902 onto junction segment 122 to berecirculated back through the singulation tool 114.

If the control system 102 determines that a divert condition is notpresent, the control system 102, at block 2408, controls the divert toolto pass the item through, e.g., to a catch bin, to another conveyor beltsystem, etc. In one embodiment, the control system 102 can trigger thedivert tool to pass the item through conveyor belts 902 and 904 ontojunction segment 120 (e.g., as illustrated in FIG. 10).

The descriptions of the various embodiments of the present inventionhave been presented for purposes of illustration, but are not intendedto be exhaustive or limited to the embodiments disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art without departing from the scope and spirit of the describedembodiments. The terminology used herein was chosen to best explain theprinciples of the embodiments, the practical application or technicalimprovement over technologies found in the marketplace, or to enableothers of ordinary skill in the art to understand the embodimentsdisclosed herein.

In the preceding, reference is made to embodiments presented in thisdisclosure. However, the scope of the present disclosure is not limitedto specific described embodiments. Instead, any combination of thefeatures and elements described herein, whether related to differentembodiments or not, is contemplated to implement and practicecontemplated embodiments. Furthermore, although embodiments disclosedherein may achieve advantages over other possible solutions or over theprior art, whether or not a particular advantage is achieved by a givenembodiment is not limiting of the scope of the present disclosure. Thus,the aspects, features, embodiments and advantages described herein aremerely illustrative and are not considered elements or limitations ofthe appended claims except where explicitly recited in a claim(s).Likewise, reference to “the invention” shall not be construed as ageneralization of any inventive subject matter disclosed herein andshall not be considered to be an element or limitation of the appendedclaims except where explicitly recited in a claim(s).

Aspects of the present invention may take the form of an entirelyhardware embodiment, an entirely software embodiment (includingfirmware, resident software, micro-code, etc.) or an embodimentcombining software and hardware aspects that may all generally bereferred to herein as a “circuit,” “module” or “system.”

The present invention may be a system, a method, and/or a computerprogram product. The computer program product may include a computerreadable storage medium (or media) having computer readable programinstructions thereon for causing a processor to carry out aspects of thepresent invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, or either source code or object code written in anycombination of one or more programming languages, including an objectoriented programming language such as Smalltalk, C++ or the like, andconventional procedural programming languages, such as the “C”programming language or similar programming languages. The computerreadable program instructions may execute entirely on the user'scomputer, partly on the user's computer, as a stand-alone softwarepackage, partly on the user's computer and partly on a remote computeror entirely on the remote computer or server. In the latter scenario,the remote computer may be connected to the user's computer through anytype of network, including a local area network (LAN) or a wide areanetwork (WAN), or the connection may be made to an external computer(for example, through the Internet using an Internet Service Provider).In some embodiments, electronic circuitry including, for example,programmable logic circuitry, field-programmable gate arrays (FPGA), orprogrammable logic arrays (PLA) may execute the computer readableprogram instructions by utilizing state information of the computerreadable program instructions to personalize the electronic circuitry,in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the block may occur out of theorder noted in the figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

While the foregoing is directed to embodiments of the present invention,other and further embodiments of the invention may be devised withoutdeparting from the basic scope thereof, and the scope thereof isdetermined by the claims that follow.

What is claimed is:
 1. A singulation system, comprising: a singulationapparatus comprising: a first conveyor at a first height; a secondconveyor at a second height, wherein the second height is relativelylower than the first height; and a plurality of intermediary conveyorsarranged at successively decreasing heights between the first height andthe second height, wherein the first conveyor, the plurality ofintermediary conveyors, and the second conveyor collectively define atransport path for items entering the singulation apparatus; a feederbelt terminating at the first conveyor and configured to transfer itemsonto the first conveyor; an exit belt starting at the second conveyorand configured to receive items from the second conveyer; a scanningapparatus configured to obtain an image of each item on the exit belt;and a master controller configured to: receive information from thefirst conveyor, the plurality of intermediary conveyors, and the secondconveyor regarding presence of items on the respective first conveyor,the plurality of intermediary conveyors, and the second conveyor; andcontrol a speed of each of the first conveyor, the plurality ofintermediary conveyors, and the second conveyor, based on theinformation, to singulate the items as the items transition along thetransport path from the first conveyor to the second conveyor.
 2. Thesingulation system of claim 1, wherein the master controller isconfigured to: determine a type of items entering the singulationapparatus; and configure one or more operating parameters of each of thefirst conveyor, the plurality of intermediary conveyors, and the secondconveyor, based on the type of items, prior to the type of itemsentering the singulation apparatus.
 3. The singulation system of claim1, wherein the master controller is configured to: instruct the scanningapparatus to obtain an image of a first item on the exit belt; anddetermine whether the first item is singulated based on the image of thefirst item.
 4. The singulation system of claim 3, wherein the mastercontroller is configured to instruct the exit belt to recirculate thefirst item through the singulation apparatus in response to determiningthe first item is not singulated.
 5. The singulation system of claim 1,wherein the master controller is configured to: detect a presence of afirst item on the first conveyor; detect a presence of a second item onan intermediary conveyor of the plurality of intermediary conveyors,wherein the intermediary conveyor is located adjacent to the firstconveyor at a lower height relative to the first conveyor and the firstconveyor is configured to transfer items onto the intermediary conveyor;determine an orientation of the intermediary conveyor relative to thefirst conveyor; and control movement of the first and second items,based on the orientation of the intermediary conveyor relative to thefirst conveyor.
 6. A system comprising: an apparatus comprising a firstconveyor, a second conveyor, and a third conveyor, wherein: the firstconveyor is located adjacent to the second conveyor at a higher heightrelative to the second conveyor, the first conveyor is configured totransfer items onto the second conveyor, and the first conveyor isoriented linearly with respect to the second conveyor; and the secondconveyor is located adjacent to the third conveyor at a higher heightrelative to the third conveyor, the second conveyor is configured totransfer the items onto the third conveyor, and the second conveyor isoriented perpendicularly with respect to the third conveyor; and amaster controller configured to: detect a presence of a first item onthe third conveyor; detect a presence of a second item on the secondconveyor while the first item is present on the third conveyor; inresponse to detecting the presence of the second item, determine alocation of the first item along a length of the third conveyor; controlthe first conveyor and the second conveyor based at least in part on thelocation of the first item; detect a presence of a third item on thefirst conveyor while the second item is present on the second conveyor;in response to detecting the presence of the third item, determining adistance between the third item and the second item; and controlling thefirst conveyor and the second conveyor based on the distance between thethird item and the second item.
 7. The system of claim 6, wherein: thefirst conveyor comprises a position sensor configured to determine aposition of the third item along a length of the first conveyor; and thesecond conveyor comprises a position sensor configured to determine aposition of the second item along a length of the second conveyor. 8.The system of claim 7, wherein the master controller is configured to:receive an indication of the position of the third item and anindication of the position of the second item; and determine thedistance between the third item and the second item based on theposition of the third item and the position of the second item.
 9. Thesystem of claim 6, wherein the third conveyor comprises a positionsensor configured to determine the location of the first item along thelength of the third conveyor.
 10. The system of claim 9, wherein: thelocation of the first item along the length of the third conveyor isdetermined with respect to a predefined region on the third conveyor;and the predefined region (i) starts from an end of the third conveyorthat is adjacent to the second conveyor and (ii) extends for a distancealong the length of the third conveyor.
 11. The system of claim 10,wherein the distance along the length of the third conveyor is equal toa width of the second conveyor.
 12. The system of claim 6, wherein themaster controller is further configured to control each of the firstconveyor, the second conveyor, and the third conveyor based on a rate ofitems exiting the apparatus.
 13. A non-transitory computer-readablemedium storing instructions executable to perform an operation forcontrolling a singulation apparatus comprising at least a firstconveyor, a second conveyor, and a third conveyor, the operationcomprising: detecting a presence of a first item on the third conveyor;detecting a presence of a second item on the second conveyor while thefirst item is present on the third conveyor; in response to detectingthe presence of the second item, determining a location of the firstitem along a length of the third conveyor; controlling the firstconveyor and the second conveyor based at least in part on the locationof the first item; detecting a presence of a third item on the firstconveyor while the second item is present on the second conveyor; inresponse to detecting the presence of the third item, determining adistance between the third item and the second item; and controlling thefirst conveyor and the second conveyor based on the distance between thethird item and the second item, wherein: the first conveyor is locatedadjacent to the second conveyor at a higher height relative to thesecond conveyor, the first conveyor is configured to transfer items ontothe second conveyor, and the first conveyor is oriented linearly withrespect to the second conveyor; and the second conveyor is locatedadjacent to the third conveyor at a higher height relative to the thirdconveyor, the second conveyor is configured to transfer the items ontothe third conveyor, and the second conveyor is oriented perpendicularlywith respect to the third conveyor.
 14. The non-transitorycomputer-readable medium of claim 13, wherein: the first conveyorcomprises a position sensor configured to determine a position of thethird item along a length of the first conveyor; and the second conveyorcomprises a position sensor configured to determine a position of thesecond item along a length of the second conveyor.
 15. Thenon-transitory computer-readable medium of claim 14, the operationfurther comprising: receiving an indication of the position of the thirditem and an indication of the position of the second item; anddetermining the distance between the third item and the second itembased on the position of the third item and the position of the seconditem.
 16. The non-transitory computer-readable medium of claim 13,wherein the third conveyor comprises a position sensor configured todetermine the location of the first item along the length of the thirdconveyor.
 17. The non-transitory computer-readable medium of claim 16,wherein: the location of the first item along the length of the thirdconveyor is determined with respect to a predefined region on the thirdconveyor; and the predefined region (i) starts from an end of the thirdconveyor that is adjacent to the second conveyor and (ii) extends for adistance along the length of the third conveyor.
 18. The non-transitorycomputer-readable medium of claim 17, wherein the distance along thelength of the third conveyor is equal to a width of the second conveyor.19. The non-transitory computer-readable medium of claim 13, theoperation further comprising controlling each of the first conveyor, thesecond conveyor, and the third conveyor based on a rate of items exitingthe apparatus.
 20. The non-transitory computer-readable medium of claim19, the operation further comprising controlling at least one of thefirst conveyor, the second conveyor, and the third conveyor based on atleast one of a type of the first item, a type of the second item, and atype of the third item.